

mv /etc/apt/sources.list /etc/apt/sources.list.bak


echo "deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse"                 > /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse"       >> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse"        >> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse"       >> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse"      >> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse"            >> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse"   >> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse"    >> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse"   >> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse"  >> /etc/apt/sources.list

cat /etc/apt/sources.list
apt-get update

# 在使用 apt-get update 的时候有可能会提示没有公钥，那么就需要安装一下
# 这里的 KEYID 就是缺少的公钥id，会再错误提示中告诉你
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ${KEYID}
# 如过上面安装公钥的命令失败，有可能是缺少 gnupg2 或者 gnupg 命令，可以先安装这个命令，优先推荐 gnupg2命令，如果不可安装再安装 gnupg 命令
apt-get install gnupg2
apt-get install gnupg




deb https://mirrors.aliyun.com/debian/ bookworm main non-free-firmware contrib
deb-src https://mirrors.aliyun.com/debian/ bookworm main non-free-firmware contrib
deb https://mirrors.aliyun.com/debian-security/ bookworm-security main
deb-src https://mirrors.aliyun.com/debian-security/ bookworm-security main
deb https://mirrors.aliyun.com/debian/ bookworm-updates main non-free-firmware contrib
deb-src https://mirrors.aliyun.com/debian/ bookworm-updates main non-free-firmware contrib
deb https://mirrors.aliyun.com/debian/ bookworm-backports main non-free-firmware contrib
deb-src https://mirrors.aliyun.com/debian/ bookworm-backports main non-free-firmware contrib

echo '' > sources.list
echo 'deb http://mirrors.aliyun.com/debian/ buster main non-free contrib' >> sources.list
echo 'deb http://mirrors.aliyun.com/debian-security buster/updates main' >> sources.list
echo 'deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib' >> sources.list
echo 'deb http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib' >> sources.list



######### 设置虚拟内存大小 #########
function set_memory_swap() {
    # 创建一个文件用于交换
    fallocate -l 4G /swapfile
    # 设置文件权限
    chmod 600 /swapfile
    # 设置文件类型为交换文件
    mkswap /swapfile
    #启用交换文件
    swapon /swapfile
    #永久性地添加到 /etc/fstab
    #为了确保系统在重启后仍然使用交换文件，需要将其添加到 /etc/fstab 文件中
    echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
    # 调整交换文件的 swappiness (可选)
    vim /etc/sysctl.conf
    #添加以下行以降低 swappiness：
    vm.swappiness=10
    #保存并退出，然后执行以下命令使更改生效：
    sudo sysctl -p
#     这样，就设置了一个交换文件并调整了一些相关的设置。请记住，虚拟内存（Swap）通常是在物理内存用尽时才被使用，它可以防止系统因为内存不足而崩溃。
#关于Swappiness参数：
#    Swappiness 是一个系统内核参数，用于调整系统在物理内存使用紧张时将数据交换到交换空间的程度。
#    Swappiness 的值范围是 0 到 100。默认值是 60（Ubuntu22.04）。
#    Swappiness 范围： Swappiness 的值可以在 0 到 100 之间调整。较低的值表示系统更倾向于使用物理内存，而较高的值表示系统更倾向于使用交换空间。
#    物理内存使用紧张时： 当系统的物理内存（RAM）开始用尽时，操作系统会考虑将不活跃的数据移至交换空间，以便为活跃的进程提供更多的物理内存。
#    默认值是 60： 在许多 Linux 发行版中，Swappiness 的默认值是 60。这表示系统在物理内存使用达到中等程度时会开始将数据移至交换空间。
#    调整 Swappiness 的值可以根据系统的用途和硬件配置进行优化。
#    在某些情况下，我们可能更希望系统更积极地使用物理内存而不是交换空间，因此可以将 Swappiness 设置为较低的值。
#    在另一些情况下，我们可能需要系统更积极地使用交换空间以防止内存耗尽，这时可以将 Swappiness 设置为较高的值。
}